module.exports = ({ types: t }) => {
  return {
    visitor: {
      Identifier(path) {
        // console.log('Identifier', path.node.name, path.parentPath.type, t.isIfStatement(path.parentPath))
        const isDebug = path.node.name === 'DEBUG' && t.isIfStatement(path.parentPath);
        if (isDebug) {
          const stringNode = t.stringLiteral('DEBUG');
          path.replaceWith(stringNode);
        }
      },
      StringLiteral(path, state) {
        // 生产环境下移除 debug 代码
        const isDebug = path.node.value === 'DEBUG' && t.isIfStatement(path.parentPath);
        // console.log('StringLiteral', state.opts)
        if (isDebug) {
          if (state.opts.isRemove) {
            path.parentPath.remove();
          }
        }
      },
    },
  };
};
